在儲存時我們還遇到一些問題,比如說除非若想更新項目,如果直接儲存任何來自於request的資料,若是實際上給的id並不存在於資料庫主索引當中,就會當作是新增項目。對於這種問題我們有兩種做法:
除非是需要讀取當下的值,而後對資料進行較特別的處理,否則先讀取值就是多一次資料操作。而本篇來看一下save時可使用的DynamoDBSaveExpression內容。
SaveExpression主要提供檢查屬性值,save作業前檢核條件符合時,才進行儲存項目
不論是以下何種method,皆是設定要檢查的屬性
而給予的參數皆為提供attributeName以及ExpectedAttributeValue
設定檢查值的條件,大致上提供如
舉例來說,若需要條件為,當pk_id有相同的值時才進行儲存,也就是限定只更新已存在的項目。
JDynamoDBSaveExpression expr = new DynamoDBSaveExpression().withExpectedEntry("pk_id", new ExpectedAttributeValue(new AttributeValue(person_id)));
expression有多個條件時,設定各條件聯集方式為AND或OR